/*
 * AircraftCarrier.h
 *
 *  Created on: Jun 21, 2009
 *      Author: computer
 */

#ifndef AIRCRAFTCARRIER_H_
#define AIRCRAFTCARRIER_H_
#include "RectangularBoatShape.h"
#include "AircraftCarrierConfiguration.h"
#include "Dimension.h"
#include "Point.h"
#include "OutOfBound.h"
#include "OverlapBoat.h"
#include "TooNearBoat.h"
#include "Boat.h"

class AircraftCarrier: public Boat {
public:
	AircraftCarrier(const string&, const Point<int>&, const AircraftCarrierConfiguration*, char);
	virtual ~AircraftCarrier();
	
	virtual bool fireToBoat(const Point<int>&, Arena*);
	virtual bool isDestroyed();
	virtual void write(Arena*) throw (OutOfBound, OverlapBoat, TooNearBoat);

private:
	RectangularBoatShape* hull;
	RectangularBoatShape* deck;
};

#endif /* AIRCRAFTCARRIER_H_ */
